package exception;
/**
 * throw关键字，用于将一个异常抛出
 * 通常下列情况下会主动将一个异常抛出到方法外:
 * 1.当前代码片段出现了异常，但是该异常不应该在此处被处理(责任问题)
 * 2.程序可以运行，但运行结果不符合实际业务需求(本案例演示的)
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        try {
            /*
              当我们调用一个含有throws声明异常抛出的方法时，编译器要求必须处理该异常，方法如下:
              1.使用try...catch捕获并处理该异常
              2.在当前方法中继续使用throws声明对该异常的抛出
              注意:具体选择哪种方式，取决于责任问题
              记住:永远不要在main方法中写throws
             */
            p.setAge(1000);
        } catch (IllegalAgeException e) {
            //System.out.println("出错了");
            //e.printStackTrace(); //向控制台输出异常的堆栈跟踪信息
            System.out.println(e.getMessage()); //输出错误消息
        }
        System.out.println("此人年龄:" + p.getAge());
    }
}
